<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Upload extends MN_Controller {

    function __construct() {
        parent::__construct();
        $this->load->helper(array('url', 'form'));
        $this->load->library('ion_auth');
        $this->load->library('session');
        $this->load->model('Reportes_Model');
        $this->load->model('Planesp_Model');
        $this->load->library('utilidades');
        $this->load->model('Coutas_Model');
    }

    public function index() {
        //$this->load->view('excel/upload');
        if (!$this->ion_auth->logged_in() || !$this->ion_auth->is_admin()) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();
        $this->load->model('Periodos_Model');
        $this->data['periodos'] = $this->Periodos_Model->getListado();



        $this->load->model('Institucion_Model');
        $this->data['cuentas'] = $this->Institucion_Model->getCuentasInstitucionNombre("INSTITUTO TECNOLOGICO SUPERIOR SUDAMERICANO LOJA");

        $this->_render('excel/upload');
    }

    public function upload_file() {
        if (!$this->ion_auth->logged_in() || !$this->ion_auth->is_admin()) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();

        //Config the parameters to upload the file to the server.
        //Configuramos los parametros para subir el archivo al servidor.
        $config['upload_path'] = './files/';

        //$config['upload_path'] = realpath(APPPATH.'../files');		
        $config['allowed_types'] = 'xls|xlsx|csv';
        $config['max_size'] = '40000';
        //$finfo = finfo_open(FINFO_MIME);
        //echo var_dump(mime_content_type('/home/patricio/Escritorio/arrastres_2014/arrastres_abril_2014.xls'));
        //finfo_close($finfo);                
        //Load the Upload CI library 
        //Cargamos la libreria CI para Subir
        $depositos = array();
        $excel = array();
        $this->load->library('upload', $config);
        //echo var_dump($_FILES);
        //echo var_dump($this->upload->data());

        if (!$this->upload->do_upload('file')) {
            //Displaying Errors.
            //Mostramos los errores.
            //echo "errores";
            //print_r($this->upload->display_errors());
            $this->data['msj_del'] = "ERROR:" . $this->upload->display_errors();
            $this->data['tit_del'] = "CARGAR PAGOS";
            $this->data['volver'] = "upload";

            $this->_render('template/msj_error');
        } else {
            //Uploads the excel file and read it with the PHPExcel Library.
            //Subimos el archivo de excel y lo leemos con la libreria PHPExcel.

            $data = array('upload_data' => $this->upload->data());
            $this->load->library('excel');
            $depositos = $this->excel->read_file($data['upload_data']['file_name']);
            $nro_cuota = $ide_lec = $this->input->post('couta'); //
            $valor_cuota = 0.0;
            $grabar = (isset($_POST['verifica']) ? FALSE : TRUE);
            $ide_lec = $this->input->post('ide_per');
            //echo $grabar;



            foreach ($depositos as $row) :

                
                $estudiante = $this->Reportes_Model->estudiante_coutas($row[1], $ide_lec);
                $msg_c = "";
                $msg_a = "";
                //print_r($estudiante);

                if (count($estudiante) <= 0) {
                    //echo "<<NO EXISTES>>";
                    $msg_c = "NO EXISTE";
                    //print_r($estudiante);
                }
                //;

                $lista_p_s = $this->Planesp_Model->getPlanPagos("planes_pago_semestre", $estudiante[0]["id_matr"]);
                $lista_p_a = $this->Planesp_Model->getPlanPagos("planes_pago_arrastre", $estudiante[0]["id_matr"]);

                //print_r($lista_p_a);
                $cuota_s = 0.00;
                $cuotas_canceladas_s = 0;
                $cuotas_canceladas_a = 0;
                $find_s = FALSE;

                if (count($lista_p_s) > 0) {
                    $find_s = TRUE;
                    $update_s = FALSE;
                    $canc_semestre = array();
                    $nombre_cuota = ($nro_cuota <= 5) ? "couta" . $nro_cuota . "_plan" : "cuota" . $nro_cuota . "_plan";
                    //$nombre_cuota="couta1_plan";


                    /* $lista_plan_s_p = $this->Coutas_Model->listarCoutas($estudiante[0]["id_matr"], "cancela_plan_semestre", "planes_pago_semestre", "planes_semestre_ide_plan");
                      $listapago_s = $this->utilidades->sacarListaPagosCuotas($lista_plan_s_p);
                      print_r( $listapago_s["lista"]["pagados"]); */
                    //$plan_s = $this->Planesp_Model->getPlanPagos("planes_pago_semestre", $estudiante[0]["id_matr"]);
                    $lista_plan_s_p = $this->Coutas_Model->listarCoutas($estudiante[0]["id_matr"], "cancela_plan_semestre", "planes_pago_semestre", "planes_semestre_ide_plan");
                    $listapago_s = $this->utilidades->sacarListaPagosCuotas($lista_plan_s_p);
                    $listadebenS = $this->sacarListaCuotas($lista_p_s, $listapago_s["lista"], $lista_p_s[0]['nro_cuotas_plan']);
                    //print_r($listadebenS);
                    //$v_ex=(isset($listadebenS[0][$nombre_cuota])?1:0);
                    //echo ($nombre_cuota. " ".$v_ex);
                    if ($listadebenS[0]['nro_cuotas_plan'] == $listadebenS[0]['nro_coutas_canc']) {
                        
                    } else {

                        if (count($listadebenS) > 0) {
                            $cuota_s = (isset($listadebenS[0][$nombre_cuota]) ? round($listadebenS[0][$nombre_cuota], 2) : 0);
                        } else {
                            $cuota_s = 0;
                        }
                        //echo ($nombre_cuota . " " . $cuota_s);
                        //$cuota_s=( count($listadebenS) > 0?($listadebenS[0][$nombre_cuota])?(round ($listadebenS[0][$nombre_cuota]),2):0)):0);
                        //print_r($listadebenS);


                        if (count($lista_plan_s_p) > 0) {
                            $update_s = TRUE;

                            //print_r($lista_plan_s_p );
                            switch ($nro_cuota) {
                                case 1:
                                    if ($lista_plan_s_p[0]['canc_cuota1'] == 1) {
                                        $msg_c = "Cuota1 Cancel";
                                        $cuota_s = 0;
                                    }
                                    break;
                                case 2:
                                    if ($lista_plan_s_p[0]["canc_cuota1"] == 1 && $lista_plan_s_p[0]["canc_cuota2"] == 1) {
                                        $msg_c = "Cuota2 Cancel";
                                        $cuota_s = 0;
                                    } else {
                                        if ($lista_plan_s_p[0]["canc_cuota1"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta1_plan"]), 2);
                                            $canc_semestre[] = array(1 => ($listadebenS[0]["couta1_plan"]));
                                        }
                                        $canc_semestre[] = array(2 => ($listadebenS[0]["couta2_plan"]));
                                        //echo ($row[1]."couta2 ".$listadebenS[0]["couta2_plan"]."<BR>");
                                    }
                                    break;
                                case 3:
                                    if ($lista_plan_s_p[0]["canc_cuota1"] == 1 && $lista_plan_s_p[0]["canc_cuota2"] == 1 && $lista_plan_s_p[0]["canc_cuota3"] == 1) {
                                        $msg_c = "Cuota3 Cancel";
                                        $cuota_s = 0;
                                    } else {
                                        if ($lista_plan_s_p[0]["canc_cuota1"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta1_plan"]), 2);
                                            $canc_semestre[] = array(1 => ($listadebenS[0]["couta1_plan"]));
                                        }
                                        if ($lista_plan_s_p[0]["canc_cuota2"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta2_plan"]), 2);
                                            $canc_semestre[] = array(2 => ($listadebenS[0]["couta2_plan"]));
                                        }
                                        $canc_semestre[] = array(3 => ($listadebenS[0]["couta3_plan"]));
                                    }
                                    break;
                                case 4:
                                    if ($lista_plan_s_p[0]["canc_cuota1"] == 1 && $lista_plan_s_p[0]["canc_cuota2"] == 1 && $lista_plan_s_p[0]["canc_cuota3"] == 1 && $lista_plan_s_p[0]["canc_cuota4"] == 1) {
                                        $msg_c = "Cuota4 Cancel";
                                        $cuota_s = 0;
                                    } else {
                                        if ($lista_plan_s_p[0]["canc_cuota1"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta1_plan"]), 2);
                                            $canc_semestre[] = array(1 => ($listadebenS[0]["couta1_plan"]));
                                        }
                                        if ($lista_plan_s_p[0]["canc_cuota2"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta2_plan"]), 2);
                                            $canc_semestre[] = array(2 => ($listadebenS[0]["couta2_plan"]));
                                        }
                                        if ($lista_plan_s_p[0]["canc_cuota3"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta3_plan"]), 2);
                                            $canc_semestre[] = array(3 => ($listadebenS[0]["couta3_plan"]));
                                        }
                                        $canc_semestre[] = array(4 => ($listadebenS[0]["couta4_plan"]));
                                    }
                                    break;
                                case 5:
                                    if ($lista_plan_s_p[0]["canc_cuota1"] == 1 && $lista_plan_s_p[0]["canc_cuota2"] == 1 && $lista_plan_s_p[0]["canc_cuota3"] == 1 && $lista_plan_s_p[0]["canc_cuota4"] == 1 && $lista_plan_s_p[0]["canc_cuota5"] == 1) {
                                        $msg_c = "Cuota5 Cancel";
                                        $cuota_s = 0;
                                    } else {
                                        if ($lista_plan_s_p[0]["canc_cuota1"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta_plan"]), 2);
                                            $canc_semestre[] = array(1 => ($listadebenS[0]["couta1_plan"]));
                                        }
                                        if ($lista_plan_s_p[0]["canc_cuota2"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta2_plan"]), 2);
                                            $canc_semestre[] = array(2 => ($listadebenS[0]["couta2_plan"]));
                                        }
                                        if ($lista_plan_s_p[0]["canc_cuota3"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta3_plan"]), 2);
                                            $canc_semestre[] = array(3 => ($listadebenS[0]["couta3_plan"]));
                                        }
                                        if ($lista_plan_s_p[0]["canc_cuota4"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta4_plan"]), 2);
                                            $canc_semestre[] = array(4 => ($listadebenS[0]["couta4_plan"]));
                                        }
                                        $canc_semestre[] = array(5 => ($listadebenS[0]["couta5_plan"]));
                                    }
                                    break;
                                case 6:
                                    if ($lista_plan_s_p[0]["canc_cuota1"] == 1 && $lista_plan_s_p[0]["canc_cuota2"] == 1 && $lista_plan_s_p[0]["canc_cuota3"] == 1 && $lista_plan_s_p[0]["canc_cuota4"] == 1 && $lista_plan_s_p[0]["canc_cuota5"] == 1 && $lista_plan_s_p[0]["canc_cuota6"] == 1 && $lista_plan_s_p[0]["canc_cuota7"] == 1) {
                                        $msg_c = "Cuota6 Cancel";
                                        $cuota_s = 0;
                                    } else {
                                        if ($lista_plan_s_p[0]["canc_cuota1"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta1_plan"]), 2);
                                            $canc_semestre[] = array(1 => ($listadebenS[0]["couta1_plan"]));
                                        }
                                        if ($lista_plan_s_p[0]["canc_cuota2"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta2_plan"]), 2);
                                            $canc_semestre[] = array(2 => ($listadebenS[0]["couta2_plan"]));
                                        }
                                        if ($lista_plan_s_p[0]["canc_cuota3"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta3_plan"]), 2);
                                            $canc_semestre[] = array(3 => ($listadebenS[0]["couta3_plan"]));
                                        }
                                        if ($lista_plan_s_p[0]["canc_cuota4"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta4_plan"]), 2);
                                            $canc_semestre[] = array(4 => ($listadebenS[0]["couta4_plan"]));
                                        }
                                        if ($lista_plan_s_p[0]["canc_cuota5"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta5_plan"]), 2);
                                            $canc_semestre[] = array(5 => ($listadebenS[0]["couta5_plan"]));
                                        }
                                        $canc_semestre[] = array(6 => ($listadebenS[0]["cuota6_plan"]));
                                    }
                                    break;
                                case 7:
                                    if ($lista_plan_s_p[0]["canc_cuota1"] == 1 && $lista_plan_s_p[0]["canc_cuota2"] == 1 && $lista_plan_s_p[0]["canc_cuota3"] == 1 && $lista_plan_s_p[0]["canc_cuota4"] == 1 && $lista_plan_s_p[0]["canc_cuota5"] == 1 && $lista_plan_s_p[0]["canc_cuota6"] == 1) {
                                        $msg_c = "Cuota7 Cancel";
                                        $cuota_s = 0;
                                    } else {
                                        if ($lista_plan_s_p[0]["canc_cuota1"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta1_plan"]), 2);
                                            $canc_semestre[] = array(1 => ($listadebenS[0]["couta1_plan"]));
                                        }
                                        if ($lista_plan_s_p[0]["canc_cuota2"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta2_plan"]), 2);
                                            $canc_semestre[] = array(2 => ($listadebenS[0]["couta2_plan"]));
                                        }
                                        if ($lista_plan_s_p[0]["canc_cuota3"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta3_plan"]), 2);
                                            $canc_semestre[] = array(3 => ($listadebenS[0]["couta3_plan"]));
                                        }
                                        if ($lista_plan_s_p[0]["canc_cuota4"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta4_plan"]), 2);
                                            $canc_semestre[] = array(4 => ($listadebenS[0]["couta4_plan"]));
                                        }
                                        if ($lista_plan_s_p[0]["canc_cuota5"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["couta5_plan"]), 2);
                                            $canc_semestre[] = array(5 => ($listadebenS[0]["couta5_plan"]));
                                        }
                                        if ($lista_plan_s_p[0]["canc_cuota6"] == 0) {
                                            $cuota_s+=round(($listadebenS[0]["cuota6_plan"]), 2);
                                            $canc_semestre[] = array(6 => ($listadebenS[0]["cuota6_plan"]));
                                        }
                                        $canc_semestre[] = array(7 => ($listadebenS[0]["cuota7_plan"]));
                                    }
                                    break;
                            }
                        } else {
                            $update_s = FALSE;

                            switch ($nro_cuota) {
                                case 1:
                                    $canc_semestre[] = array(1 => ($listadebenS[0]["couta1_plan"]));
                                    break;
                                case 2:
                                    $cuota_s+=round(($listadebenS[0]["couta1_plan"]), 2);
                                    $canc_semestre[] = array(1 => ($listadebenS[0]["couta1_plan"]));
                                    if (isset($listadebenS[0]["couta2_plan"]))
                                    $canc_semestre[] = array(2 => ($listadebenS[0]["couta2_plan"]));
                                    break;
                                case 3:
                                    $canc_semestre[] = array(1 => ($listadebenS[0]["couta1_plan"]));
                                    $canc_semestre[] = array(2 => ($listadebenS[0]["couta2_plan"]));
                                    $canc_semestre[] = array(3 => ($listadebenS[0]["couta3_plan"]));

                                    $cuota_s+=round(($listadebenS[0]["couta1_plan"] + $listadebenS[0]["couta2_plan"]), 2);
                                    break;
                                case 4:
                                    $canc_semestre[] = array(1 => ($listadebenS[0]["couta1_plan"]));
                                    $canc_semestre[] = array(2 => ($listadebenS[0]["couta2_plan"]));
                                    $canc_semestre[] = array(3 => ($listadebenS[0]["couta3_plan"]));
                                    $canc_semestre[] = array(4 => ($listadebenS[0]["couta4_plan"]));

                                    $cuota_s+=round(($listadebenS[0]["couta1_plan"] + $listadebenS[0]["couta2_plan"] +
                                            $listadebenS[0]["couta3_plan"]), 2);
                                    break;
                                case 5:
                                    $canc_semestre[] = array(1 => ($listadebenS[0]["couta1_plan"]));
                                    $canc_semestre[] = array(2 => ($listadebenS[0]["couta2_plan"]));
                                    $canc_semestre[] = array(3 => ($listadebenS[0]["couta3_plan"]));
                                    $canc_semestre[] = array(4 => ($listadebenS[0]["couta4_plan"]));
                                    $canc_semestre[] = array(5 => ($listadebenS[0]["couta5_plan"]));

                                    $cuota_s+=round(($listadebenS[0]["couta1_plan"] + $listadebenS[0]["couta2_plan"] +
                                            $listadebenS[0]["couta3_plan"] + $listadebenS[0]["couta4_plan"]), 2);
                                    break;
                                case 6:
                                    $canc_semestre[] = array(1 => ($listadebenS[0]["couta1_plan"]));
                                    $canc_semestre[] = array(2 => ($listadebenS[0]["couta2_plan"]));
                                    $canc_semestre[] = array(3 => ($listadebenS[0]["couta3_plan"]));
                                    $canc_semestre[] = array(4 => ($listadebenS[0]["couta4_plan"]));
                                    $canc_semestre[] = array(5 => ($listadebenS[0]["couta5_plan"]));
                                    $canc_semestre[] = array(6 => ($listadebenS[0]["cuota6_plan"]));

                                    $cuota_s+=round(($listadebenS[0]["couta1_plan"] + $listadebenS[0]["couta2_plan"] +
                                            $listadebenS[0]["couta3_plan"] + $listadebenS[0]["couta4_plan"] +
                                            $listadebenS[0]["couta5_plan"]), 2);
                                    break;
                                case 7:
                                    $canc_semestre[] = array(1 => ($listadebenS[0]["couta1_plan"]));
                                    $canc_semestre[] = array(2 => ($listadebenS[0]["couta2_plan"]));
                                    $canc_semestre[] = array(3 => ($listadebenS[0]["couta3_plan"]));
                                    $canc_semestre[] = array(4 => ($listadebenS[0]["couta4_plan"]));
                                    $canc_semestre[] = array(5 => ($listadebenS[0]["couta5_plan"]));
                                    $canc_semestre[] = array(6 => ($listadebenS[0]["cuota6_plan"]));
                                    $canc_semestre[] = array(7 => ($listadebenS[0]["cuota7_plan"]));

                                    $cuota_s+=round(($listadebenS[0]["couta1_plan"] + $listadebenS[0]["couta2_plan"] +
                                            $listadebenS[0]["couta3_plan"] + $listadebenS[0]["couta4_plan"] +
                                            $listadebenS[0]["couta5_plan"] + $listadebenS[0]["cuota6_plan"]), 2);
                                    break;
                            }
                        }
                    }
                }
                $cuota_a = 0.00;
                $find_a = FALSE;

                if (count($lista_p_a) > 0) {
                    $canc_mat = array();
                    //$lista_plan_a_p = $this->Coutas_Model->listarCoutas($estudiante[0]["id_matr"], "cancela_plan_arrastre", "planes_pago_arrastre", "planes_arrastre_ide_plan");
                    $nombre_cuota = ($nro_cuota <= 5) ? "couta" . $nro_cuota . "_plan" : "cuota" . $nro_cuota . "_plan";

                    //$listapago_a = $this->utilidades->sacarListaPagosCuotas($lista_plan_a_p);
                    //$plan_a = $this->Planesp_Model->getPlanPagos("planes_pago_arrastre", $estudiante[0]["id_matr"]);
                    //$plan_a = $this->Planesp_Model->getPlanPagos("planes_pago_arrastre", $estudiante[0]["id_matr"]);
                    $lista_plan_a_p = $this->Coutas_Model->listarCoutas($estudiante[0]["id_matr"], "cancela_plan_arrastre", "planes_pago_arrastre", "planes_arrastre_ide_plan");
                    $listapago_a = $this->utilidades->sacarListaPagosCuotas($lista_plan_a_p);
                    $listaArrastreDebe = $this->sacarListaCuotas($lista_p_a, $listapago_a["lista"], $lista_p_a[0]['nro_cuotas_plan']);
                    //$cuota_a=round (($listaArrastreDebe[0][$nombre_cuota]),2);
                    if ($listaArrastreDebe[0]['nro_cuotas_plan'] == $listaArrastreDebe[0]['nro_coutas_canc']) {
                        
                    } else {
                        if (count($listaArrastreDebe) > 0) {
                            $cuota_a = (isset($listaArrastreDebe[0][$nombre_cuota]) ? round($listaArrastreDebe[0][$nombre_cuota], 2) : 0);
                        } else {
                            $cuota_a = 0;
                        }


                        //$cuota_a = ( count($listaArrastreDebe) > 0 ? round(($listaArrastreDebe[0][$nombre_cuota]), 2) : 0);
                        //$this->data['plan_s_p'] = $listapago_s["lista"];
                        //$this->data['totalPagadoS'] = $listapago_s["total"];
                        //print_r($listaArrastreDebe[0]["couta2_plan"]);

                        $find_a = TRUE;
                        $update_a = FALSE;

                        if (count($lista_plan_a_p) > 0 && count($listaArrastreDebe) > 0) {
                            $update_a = TRUE;
                            //print_r($lista_plan_a_p[0]['ide_canc'] );
                            switch ($nro_cuota) {
                                case 1:
                                    if ($lista_plan_a_p[0]['canc_cuota1'] == 1) {
                                        $msg_a = "Cuota1 Cancel";
                                        $cuota_a = 0;
                                    }
                                    break;
                                case 2:
                                    if ($lista_plan_a_p[0]["canc_cuota1"] == 1 && $lista_plan_a_p[0]["canc_cuota2"] == 1) {
                                        $msg_c = "Cuota2 Cancel";
                                        $cuota_a = 0;
                                    } else {
                                        if ($lista_plan_a_p[0]["canc_cuota1"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta1_plan"]), 2);
                                            $canc_mat[] = array(1 => ($listaArrastreDebe[0]["couta1_plan"]));
                                        }
                                        $canc_mat[] = array(2 => ($listaArrastreDebe[0]["couta2_plan"]));
                                    }
                                    break;
                                case 3:
                                    if ($lista_plan_a_p[0]["canc_cuota1"] == 1 && $lista_plan_a_p[0]["canc_cuota2"] == 1 && $lista_plan_a_p[0]["canc_cuota3"] == 1) {
                                        $msg_a = "Cuota3 Cancel";
                                        $cuota_a = 0;
                                    } else {
                                        if ($lista_plan_a_p[0]["canc_cuota1"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta1_plan"]), 2);
                                            $canc_mat[] = array(1 => ($listaArrastreDebe[0]["couta1_plan"]));
                                        }
                                        if ($lista_plan_a_p[0]["canc_cuota2"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta2_plan"]), 2);
                                            $canc_mat[] = array(2 => ($listaArrastreDebe[0]["couta2_plan"]));
                                        }
                                        $canc_mat[] = array(3 => ($listaArrastreDebe[0]["couta3_plan"]));
                                    }
                                    break;
                                case 4:
                                    if ($lista_plan_a_p[0]["canc_cuota1"] == 1 && $lista_plan_a_p[0]["canc_cuota2"] == 1 && $lista_plan_a_p[0]["canc_cuota3"] == 1 && $lista_plan_a_p[0]["canc_cuota4"] == 1) {
                                        $msg_a = "Cuota4 Cancel";
                                        ;
                                        $cuota_a = 0;
                                    } else {
                                        if ($lista_plan_a_p[0]["canc_cuota1"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta1_plan"]), 2);
                                            $canc_mat[] = array(1 => ($listaArrastreDebe[0]["couta1_plan"]));
                                        }
                                        if ($lista_plan_a_p[0]["canc_cuota2"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta2_plan"]), 2);
                                            $canc_mat[] = array(2 => ($listaArrastreDebe[0]["couta2_plan"]));
                                        }
                                        if ($lista_plan_a_p[0]["canc_cuota3"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta3_plan"]), 2);
                                            $canc_mat[] = array(3 => ($listaArrastreDebe[0]["couta3_plan"]));
                                        }
                                        $canc_mat[] = array(4 => ($listaArrastreDebe[0]["couta4_plan"]));
                                    }
                                    break;
                                case 5:
                                    if ($lista_plan_a_p[0]["canc_cuota1"] == 1 && $lista_plan_a_p[0]["canc_cuota2"] == 1 && $lista_plan_a_p[0]["canc_cuota3"] == 1 && $lista_plan_a_p[0]["canc_cuota4"] == 1 && $lista_plan_a_p[0]["canc_cuota5"] == 1) {
                                        $msg_a = "Cuota5 Cancel";
                                        $cuota_a = 0;
                                    } else {
                                        if ($lista_plan_a_p[0]["canc_cuota1"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta1_plan"]), 2);
                                            $canc_mat[] = array(1 => ($listaArrastreDebe[0]["couta1_plan"]));
                                        }
                                        if ($lista_plan_a_p[0]["canc_cuota2"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta2_plan"]), 2);
                                            $canc_mat[] = array(2 => ($listaArrastreDebe[0]["couta2_plan"]));
                                        }
                                        if ($lista_plan_a_p[0]["canc_cuota3"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta3_plan"]), 2);
                                            $canc_mat[] = array(3 => ($listaArrastreDebe[0]["couta3_plan"]));
                                        }
                                        if ($lista_plan_a_p[0]["canc_cuota4"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta4_plan"]), 2);
                                            $canc_mat[] = array(4 => ($listaArrastreDebe[0]["couta4_plan"]));
                                        }
                                        $canc_mat[] = array(5 => ($listaArrastreDebe[0]["couta5_plan"]));
                                    }
                                    break;
                                case 6:
                                    if ($lista_plan_a_p[0]["canc_cuota1"] == 1 && $lista_plan_a_p[0]["canc_cuota2"] == 1 && $lista_plan_a_p[0]["canc_cuota3"] == 1 && $lista_plan_a_p[0]["canc_cuota4"] == 1 && $lista_plan_a_p[0]["canc_cuota5"] == 1 && $lista_plan_a_p[0]["canc_cuota6"] == 1 && $lista_plan_a_p[0]["canc_cuota7"] == 1) {
                                        $msg_a = "Cuota Cancel";
                                        $cuota_a = 0;
                                    } else {
                                        if ($lista_plan_a_p[0]["canc_cuota1"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta1_plan"]), 2);
                                            $canc_mat[] = array(1 => ($listaArrastreDebe[0]["couta1_plan"]));
                                        }
                                        if ($lista_plan_a_p[0]["canc_cuota2"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta2_plan"]), 2);
                                            $canc_mat[] = array(2 => ($listaArrastreDebe[0]["couta2_plan"]));
                                        }
                                        if ($lista_plan_a_p[0]["canc_cuota3"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta3_plan"]), 2);
                                            $canc_mat[] = array(3 => ($listaArrastreDebe[0]["couta3_plan"]));
                                        }
                                        if ($lista_plan_a_p[0]["canc_cuota4"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta4_plan"]), 2);
                                            $canc_mat[] = array(4 => ($listaArrastreDebe[0]["couta4_plan"]));
                                        }

                                        if ($lista_plan_a_p[0]["canc_cuota5"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta5_plan"]), 2);
                                            $canc_mat[] = array(5 => ($listaArrastreDebe[0]["couta5_plan"]));
                                        }
                                        $canc_mat[] = array(6 => ($listaArrastreDebe[0]["couta6_plan"]));
                                    }
                                    break;
                                case 7:
                                    if ($lista_plan_a_p[0]["canc_cuota1"] == 1 && $lista_plan_a_p[0]["canc_cuota2"] == 1 && $lista_plan_a_p[0]["canc_cuota3"] == 1 && $lista_plan_a_p[0]["canc_cuota4"] == 1 && $lista_plan_a_p[0]["canc_cuota5"] == 1 && $lista_plan_a_p[0]["canc_cuota6"] == 1) {
                                        $msg_a = "Cuota Cancel";
                                        $cuota_a = 0;
                                    } else {
                                        if ($lista_plan_a_p[0]["canc_cuota1"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta1_plan"]), 2);
                                            $canc_mat[] = array(1 => ($listaArrastreDebe[0]["couta1_plan"]));
                                        }
                                        if ($lista_plan_a_p[0]["canc_cuota2"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta2_plan"]), 2);
                                            $canc_mat[] = array(2 => ($listaArrastreDebe[0]["couta2_plan"]));
                                        }
                                        if ($lista_plan_a_p[0]["canc_cuota3"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta3_plan"]), 2);
                                            $canc_mat[] = array(3 => ($listaArrastreDebe[0]["couta3_plan"]));
                                        }
                                        if ($lista_plan_a_p[0]["canc_cuota4"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta4_plan"]), 2);
                                            $canc_mat[] = array(4 => ($listaArrastreDebe[0]["couta4_plan"]));
                                        }

                                        if ($lista_plan_a_p[0]["canc_cuota5"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta5_plan"]), 2);
                                            $canc_mat[] = array(5 => ($listaArrastreDebe[0]["couta5_plan"]));
                                        }
                                        if ($lista_plan_a_p[0]["canc_cuota6"] == 0) {
                                            $cuota_a+=round(($listaArrastreDebe[0]["couta6_plan"]), 2);
                                            $canc_mat[] = array(6 => ($listaArrastreDebe[0]["couta6_plan"]));
                                        }
                                        $canc_mat[] = array(7 => ($listaArrastreDebe[0]["couta7_plan"]));
                                    }
                                    break;
                            }
                        } else {
                            $update_a = FALSE;
                            switch ($nro_cuota) {
                                case 1:
                                    $canc_mat[] = array(1 => ($listaArrastreDebe[0]["couta1_plan"]));

                                    break;
                                case 2:
                                    $cuota_a+=round(($listaArrastreDebe[0]["couta1_plan"]), 2);
                                    $canc_mat[] = array(1 => ($listaArrastreDebe[0]["couta1_plan"]));
                                    $canc_mat[] = array(2 => ($listaArrastreDebe[0]["couta2_plan"]));

                                    break;
                                case 3:
                                    $cuota_a+=round(($listaArrastreDebe[0]["couta1_plan"] + $listaArrastreDebe[0]["couta2_plan"]), 2);
                                    $canc_mat[] = array(1 => ($listaArrastreDebe[0]["couta1_plan"]));
                                    $canc_mat[] = array(2 => ($listaArrastreDebe[0]["couta2_plan"]));
                                    $canc_mat[] = array(3 => ($listaArrastreDebe[0]["couta3_plan"]));

                                    break;
                                case 4:
                                    $cuota_a+=round(($listaArrastreDebe[0]["couta1_plan"] + $listaArrastreDebe[0]["couta2_plan"] + $listaArrastreDebe[0]["couta3_plan"]), 2);
                                    $canc_mat[] = array(1 => ($listaArrastreDebe[0]["couta1_plan"]));
                                    $canc_mat[] = array(2 => ($listaArrastreDebe[0]["couta2_plan"]));
                                    $canc_mat[] = array(3 => ($listaArrastreDebe[0]["couta3_plan"]));
                                    $canc_mat[] = array(4 => ($listaArrastreDebe[0]["couta4_plan"]));
                                    break;
                                case 5:
                                    $cuota_a+=round(($listaArrastreDebe[0]["couta1_plan"] + $$listaArrastreDebe[0]["couta2_plan"] + $listaArrastreDebe[0]["couta3_plan"] + $listaArrastreDebe[0]["couta4_plan"]), 2);
                                    $canc_mat[] = array(1 => ($listaArrastreDebe[0]["couta1_plan"]));
                                    $canc_mat[] = array(2 => ($listaArrastreDebe[0]["couta2_plan"]));
                                    $canc_mat[] = array(3 => ($listaArrastreDebe[0]["couta3_plan"]));
                                    $canc_mat[] = array(4 => ($listaArrastreDebe[0]["couta4_plan"]));
                                    $canc_mat[] = array(5 => ($listaArrastreDebe[0]["couta5_plan"]));
                                    break;
                                case 6:
                                    $cuota_a+=round(($listaArrastreDebe[0]["couta1_plan"] + $$listaArrastreDebe[0]["couta2_plan"] + $listaArrastreDebe[0]["couta3_plan"] + $listaArrastreDebe[0]["couta4_plan"] + $listaArrastreDebe[0]["couta5_plan"]), 2);
                                    $canc_mat[] = array(1 => ($listaArrastreDebe[0]["couta1_plan"]));
                                    $canc_mat[] = array(2 => ($listaArrastreDebe[0]["couta2_plan"]));
                                    $canc_mat[] = array(3 => ($listaArrastreDebe[0]["couta3_plan"]));
                                    $canc_mat[] = array(4 => ($listaArrastreDebe[0]["couta4_plan"]));
                                    $canc_mat[] = array(5 => ($listaArrastreDebe[0]["couta5_plan"]));
                                    $canc_mat[] = array(6 => ($listaArrastreDebe[0]["cuota6_plan"]));

                                    break;
                                case 7:
                                    $cuota_a+=round(($listaArrastreDebe[0]["couta1_plan"] + $$listaArrastreDebe[0]["couta2_plan"] + $listaArrastreDebe[0]["couta3_plan"] + $listaArrastreDebe[0]["couta4_plan"] + $listaArrastreDebe[0]["couta5_plan"] + $listaArrastreDebe[0]["cuota6_plan"]), 2);
                                    $canc_mat[] = array(1 => ($listaArrastreDebe[0]["couta1_plan"]));
                                    $canc_mat[] = array(2 => ($listaArrastreDebe[0]["couta2_plan"]));
                                    $canc_mat[] = array(3 => ($listaArrastreDebe[0]["couta3_plan"]));
                                    $canc_mat[] = array(4 => ($listaArrastreDebe[0]["couta4_plan"]));
                                    $canc_mat[] = array(5 => ($listaArrastreDebe[0]["couta5_plan"]));
                                    $canc_mat[] = array(6 => ($listaArrastreDebe[0]["cuota6_plan"]));
                                    $canc_mat[] = array(7 => ($listaArrastreDebe[0]["cuota7_plan"]));
                                    break;
                            }
                        }
                    }
                }
                $cuota_r = 0.00;
                $find_r = FALSE;
                $valorPT=0;
                if($this->input->post('ide_proc')==8){ //incluir rubro
                    //echo ("verificar rubros");
                    //print_r($estudiante[0]);
                    //$item=array();
                    $this->load->model('rubrocons_modelo');
                    
                    $cuota_rubro=$this->input->post('cout_proc');
                    $canc_rubro = array();
                    $valorPT = 0;
                    //print_r($estudiante[0]);


                    $listaRubros = $this->utilidades->listarRubrosMat($estudiante[0]["id_matr"], 8);
                    $listaRubros1 = $this->utilidades->listarRubrosMat($estudiante[0]["id_matr"], 9);
                    if (count($listaRubros) > 0) {

                        
                        if($this->rubrocons_modelo->Nro_Nocanceladas($estudiante[0]["id_matr"])>0){
                            //$item["cuota_rubro"] = $cuota_rubro;
                            
                            for ($i = $cuota_rubro; $i >= 1; $i--) {
                                if ($listaRubros[0]["estado" . $i] == 1) {
                                    $find_r = TRUE;
                                    $canc_rubro[] = array("couta" =>$i,"ide_asigna"=> ($listaRubros[0]["ide_asigna"]));

                                    //$item["valor_cuota_rubro"] = $listaRubros[0]["cuota" . $cuota_rubro];
                                    $valorPT = $valorPT + $listaRubros[0]["cuota" . $i];
                                }
                            }
                            //$item["valor_cuota_rubro"] = $valorPT;
                            //$item["rubro_nombre"] = $listaRubros[0]["nombre_rubro"];

                            }

                        
                    } else if (count($listaRubros1) > 0) {

                        if($this->rubrocons_modelo->Nro_Nocanceladas($estudiante[0]["id_matr"])>0){
                            //print_r($listaRubros1);
                            //$item["cuota_rubro"] = $cuota_rubro;
                            
                            for ($i = $cuota_rubro; $i >= 1; $i--) {
                                if ($listaRubros1[0]["estado" . $i] == 1) {
                                    $find_r = TRUE;
                                    $canc_rubro[] = array("couta" =>$i,"ide_asigna"=> ($listaRubros1[0]["ide_asigna"]));
                                    // $listaRubros[0]["ide_asigna"] => 96
                                    //$item["valor_cuota_rubro"] = $listaRubros[0]["cuota" . $cuota_rubro];
                                    $valorPT = $valorPT + $listaRubros1[0]["cuota" . $i];
                                }
                            }
                            //$item["valor_cuota_rubro"] = $valorEC; //                               
                            //$item["rubro_nombre"] = $listaRubros1[0]["nombre_rubro"];

                        }
                        
                    } else {
                        $find_r = FALSE;
                        //$item["cuota_rubro"] = 0;
                        //$item["valor_cuota_rubro"] = 0;
                        //$item["rubro_nombre"] = "No tiene rubro";
                        //$ide_matriculas.='nada';
                    }
                    //print_r($canc_rubro);
                    //foreach ($canc_rubro as $key => $value) {
                    //    print_r($value["couta"]);
                        # code...
                    //}
                    //$auxListaR[] = $item;                    


                }

                //Proceso de almacenar los valores en las tabblas correspondientes
                $total = round(($row[2] - ($cuota_s + $cuota_a+$valorPT)), 2);
                $cadsql_recibo = "";
                $nro_recibo = 0;
                $count = 0;
                //$miarray_a=array();
                if ($total > 0 && $cuota_s == 0 && $cuota_a == 0 && $valorPT == 0) {
                    $total = 0;
                    $msj = "No procesado";
                    $fecha_dep = date("Y/m/d");


                                       
                } elseif ($total >= 0 && ($cuota_s > 0 || $cuota_a > 0 || $valorPT > 0)) {
                    $msj = "Procesado " . ($total > 0 ? "Saldo A favor" : " ");
                    $fecha_dep = date("Y/m/d", (($row[4] - 25568) * 86400));
                    if ($cuota_s > 0 || $cuota_a > 0 ) {
                    
                    
                    $campos_retorno_s = array();
                    $campos_retorno_a = array();
                    $nro_recibo = $this->Reportes_Model->getNroRecibo($ide_lec) + 1;
                    //echo  ($row[1]);
                    //print_r($nro_recibo."ooo");
                    $cadsql_recibo = "INSERT INTO recibo_cancela 
                                    (nro_recibo,ide_lec,ide_plan1,tabla_plan1,ide_plan2,tabla_plan2,ide_plan3,tabla_plan3,
                                    id_rubro,fecha_recib,tipo_doc,nro_comp_pago,lote_doc_pago,ref_doc_pago,
                                    nom_doc_pago,monto_efec_pago,monto_rest_pago,id_cuota,id_cuota1,id_cuota2,
                                    tipo_cuota,fecha_doc,monto_canc,cuotas_can_sem,cuotas_can_arr,
                                    valor_can_sem,valor_can_arr) VALUES ($nro_recibo,$ide_lec,";

                    if ($find_s) {
                        if (!$update_s) {
                            $campos_retorno_s = $this->insert_arreglo($canc_semestre, $lista_p_s[0]['ide_plan'], 1, $fecha_dep, $grabar);
                        } else {
                            //print_r($lista_plan_s_p);//$lista_plan_s_p


                            $campos_retorno_s = $this->update_arreglo($canc_semestre, $lista_p_s[0]['ide_plan'], $lista_plan_s_p[0]['ide_canc'], 1, $fecha_dep, $grabar);
                            //print_r($campos_retorno_s);
                        }
                        $count = substr_count($campos_retorno_s['coutas_can'], ';');
                        //$cad1=  $campos_retorno_s['coutas_can']."-1";//colocar un valor inferior a cero
                        //$miarray_a = explode(';',$cad1);
                        //$miarray_a=  sort($miarray_a);

                        $cuotas_canceladas_s = ($count > 1 ? ($count = $count - 1) : 0);
                        $cadsql_recibo.="" . $lista_p_s[0]['ide_plan'] . ",1,";
                    } else {
                        $cadsql_recibo.="0,0,";
                    }
                    if ($find_a) {
                        if (!$update_a) {
                            $campos_retorno_a = $this->insert_arreglo($canc_mat, $lista_p_a[0]['ide_plan'], 2, $fecha_dep, $grabar);
                        } else {

                            $campos_retorno_a = $this->update_arreglo($canc_mat, $lista_p_a[0]['ide_plan'], $lista_plan_a_p[0]['ide_canc'], 2, $fecha_dep, $grabar);
                        }
                        $count = substr_count($campos_retorno_a['coutas_can'], ';');

                        $cuotas_canceladas_a = ($count > 1 ? ($count = $count - 1) : 0);

                        $cadsql_recibo.="" . $lista_p_a[0]['ide_plan'] . ",2,";
                    } else {
                        $cadsql_recibo.="0,0,";
                    }

                    $nom_doc_pago = $this->input->post('nom_doc_pago');
                    $nro_comp_pago = $row[3];


                    $cadsql_recibo.="0,0,0,'" . date("Y/m/d") . "',7,'$nro_comp_pago','','','$nom_doc_pago',0,0,"; //hasta monto_rest
                    $cadsql_recibo.=(count($campos_retorno_s) > 0 ? $campos_retorno_s['ide_canc'] : 0) . ",";
                    $cadsql_recibo.=(count($campos_retorno_a) > 0 ? $campos_retorno_a['ide_canc'] : 0) . ",";
                    $cadsql_recibo.="0,1,'" . $fecha_dep . "'," . ($cuota_s + $cuota_a) . ",";
                    $cadsql_recibo.=(count($campos_retorno_s) > 0 ? "'" . $campos_retorno_s['coutas_can'] . "'," : "'',");
                    $cadsql_recibo.=(count($campos_retorno_a) > 0 ? "'" . $campos_retorno_a['coutas_can'] . "'," : "'',");
                    $cadsql_recibo.=(count($campos_retorno_s) > 0 ? "'" . $campos_retorno_s['valor_can'] . "'," : "'',");
                    $cadsql_recibo.=(count($campos_retorno_a) > 0 ? "'" . $campos_retorno_a['valor_can'] . "'" : "''");
                    $cadsql_recibo.=");";

                    //print_r ($miarray_a );
                    //echo ($cuotas_canceladas_s . " ".$cuotas_canceladas_a . "<BR>");
                    if ($grabar) {
                        $this->Reportes_Model->insertsql($cadsql_recibo);
                        if ($cuotas_canceladas_s > 0) {

                            //echo "actualiza semestre";
                            $this->Planesp_Model->actualizarCuotaCancelada($cuotas_canceladas_s, $lista_p_s[0]['ide_plan'], 'planes_pago_semestre');
                        }
                        if ($cuotas_canceladas_a > 0) {
                            //echo "actualiza arrastre";
                            $this->Planesp_Model->actualizarCuotaCancelada($cuotas_canceladas_a, $lista_p_a[0]['ide_plan'], 'planes_pago_arrastre');
                        }
                    }
                 }
                 if ($valorPT > 0){
                    $cadsql_recibo_rubro = "INSERT INTO recibo_rubro 
                    (cuotas_id_pagadas,nro_comp_pago,lote_doc_pago,ref_doc_pago,
                    nom_doc_pago,monto_efec_pago,monto_rest_pago,fechadep_doc_pago_mat,
                    id_asigna,tipo_doc,fecha_pago) VALUES ('";
                    $nom_doc_pago = $this->input->post('nom_doc_pago');
                    $nro_comp_pago = $row[3];
                    $cuotas_id_pagadas="";

                    foreach ($canc_rubro as $key => $value) {
                        $id_asigna=$value["ide_asigna"];
                        $id_rubroCuotas=$this->rubrocons_modelo->getid_rubroCuotas($value["ide_asigna"],$value["couta"]);
                        $cuotas_id_pagadas.="$id_rubroCuotas:" ;
                        $cadsql_rubro_cuotas="UPDATE rubro_cuotas SET estado=0 WHERE id_rubroCuotas=$id_rubroCuotas";
                        //echo $cadsql_rubro_cuotas;
                        if ($grabar){
                            $this->Reportes_Model->insertsql($cadsql_rubro_cuotas);
                        }

                    }

                    $cadsql_recibo_rubro.="$cuotas_id_pagadas','$nro_comp_pago','','','$nom_doc_pago',$valorPT,0,'". date("Y/m/d") . "'," 
                    . "$id_asigna,7,'". date("Y/m/d") . "');";
                    //echo ($cadsql_recibo_rubro);
                        if ($grabar){
                            $this->Reportes_Model->insertsql($cadsql_recibo_rubro);

                        }

                    
                 }
                } else {
                    $msj = "No procesado";
                    $fecha_dep = date("Y/m/d");
                }


                //print_r($canc_semestre[0]);
                $fila = array(
                    "cedula" => $row[1],
                    "fecha" => $fecha_dep,
                    "valor" => $row[2],
                    "cuota_s" => $cuota_s,
                    "cuota_a" => $cuota_a,
                    "cuota_r" => $valorPT,
                    "total" => $total,
                    "mensaje" => ($msj . " " . $msg_c . " " . $msg_a));
                //"mensaje"=>($cadsql_recibo));
                $excel[] = $fila;
            endforeach;
            //$excel=$depositos;
            //The file stored in the server will be deleted, we don't need it anymore.
            //El archivo almacenado en el servidor sera eliminado, no lo necesitamos mas.
            unlink($config['upload_path'] . '/' . $data['upload_data']['file_name']);

            //Set the array result from the library function and pass it to the view.
            //Asignamos el arreglo resultante de la funcion de la libreria y lo pasamos a la vista.
            $this->data['excel'] = $excel;
            //print_r($excel);
            //$this->load->view('excel/view', $data);	
            $this->_render('excel/view');
        }
    }

    function insert_arreglo($arreglo, $ide_plan, $tipo, $fecha, $grabar) {  //tipo (1=semestre,2=arrasstre)
        $tabla = ($tipo == 1 ? "cancela_plan_semestre" : "cancela_plan_arrastre");

        $cadsql = "INSERT INTO $tabla (" . ($tipo == 1 ? "planes_semestre_ide_plan" : "planes_arrastre_ide_plan");
        $campos = "";
        $valores = "";
        $cuotas_can = "0;";
        $valor_can = "0;";
        foreach ($arreglo as $fil) {

            foreach ($fil as $key => $dato) {
                if ($key == 1) {
                    $campos.= ",valor_cuota1,obser_cuota1,canc_cuota1";
                    $cuotas_can.="1;";
                }
                if ($key == 2) {
                    $campos.= ",valor_cuota2,obser_cuota2,canc_cuota2";
                    $cuotas_can.="2;";
                }
                if ($key == 3) {
                    $campos.= ",valor_cuota3,obser_cuota3,canc_cuota3";
                    $cuotas_can.="3;";
                }
                if ($key == 4) {
                    $campos.= ",valor_cuota4,obser_cuota4,canc_cuota4";
                    $cuotas_can.="4;";
                }
                if ($key == 5) {
                    $campos.= ",valor_cuota5,obser_cuota5,canc_cuota5";
                    $cuotas_can.="5;";
                }
                if ($key == 6) {
                    $campos.= ",valor_cuota6,obser_cuota6,canc_cuota6";
                    $cuotas_can.="6;";
                }
                if ($key == 7) {
                    $campos.= ",valor_cuota7,obser_cuota7,canc_cuota7";
                    $cuotas_can.="7;";
                }
                $valores.=",$dato,'NINGUNA',1";
                $valor_can.="$dato;";
            }
        }
        $cadsql.=$campos . ",administrativos_ide_adm,fecha_pago) VALUES ($ide_plan" . $valores . ",1,'$fecha');";
        //echo ($cadsql.'<br>');
        if ($grabar) {
            $ide = $this->Reportes_Model->insertsql($cadsql);
        } else {
            $ide = 1;
        }
        $campos_retorno = array(
            "ide_canc" => $ide,
            'coutas_can' => $cuotas_can,
            'valor_can' => $valor_can);
        //echo ($cadsql.'<br>');
        return $campos_retorno;
    }

    function update_arreglo($arreglo, $ide_plan, $ide_canc, $tipo, $fecha, $grabar) {  //tipo (1=semestre,2=arrasstre)
        $tabla = ($tipo == 1 ? "cancela_plan_semestre" : "cancela_plan_arrastre");

        $cadsql = "UPDATE  $tabla SET " . ($tipo == 1 ? "planes_semestre_ide_plan=$ide_plan" : "planes_arrastre_ide_plan=$ide_plan");
        $campos = "";
        $cuotas_can = "0;";
        $valor_can = "0;";
        //print_r($arreglo);

        foreach ($arreglo as $fil) {

            foreach ($fil as $key => $dato) {
                if ($key == 1) {
                    $campos.= ",valor_cuota1=$dato,obser_cuota1='NINGUNA',canc_cuota1=1";
                    $cuotas_can.="1;";
                }
                if ($key == 2) {
                    $campos.= ",valor_cuota2=$dato,obser_cuota2='NINGUNA',canc_cuota2=1";
                    $cuotas_can.="2;";
                }
                if ($key == 3) {
                    $campos.= ",valor_cuota3=$dato,obser_cuota3='NINGUNA',canc_cuota3=1";
                    $cuotas_can.="3;";
                }
                if ($key == 4) {
                    $campos.= ",valor_cuota4=$dato,obser_cuota4='NINGUNA',canc_cuota4=1";
                    $cuotas_can.="4;";
                }
                if ($key == 5) {
                    $campos.= ",valor_cuota5=$dato,obser_cuota5='NINGUNA',canc_cuota5=1";
                    $cuotas_can.="5;";
                }
                if ($key == 6) {
                    $campos.= ",valor_cuota6=$dato,obser_cuota6=='NINGUNA',canc_cuota6=1";
                    $cuotas_can.="6;";
                }
                if ($key == 7) {
                    $campos.= ",valor_cuota7=$dato,obser_cuota7=='NINGUNA',canc_cuota7=1";
                    $cuotas_can.="7;";
                }
                $valor_can.="$dato;";
            }
        }
        $cadsql.=$campos . ",administrativos_ide_adm=1,fecha_pago='$fecha'";
        $cadsql.=" WHERE " . ($tipo == 1 ? "planes_semestre_ide_plan=$ide_plan;" : "planes_arrastre_ide_plan=$ide_plan;");
        //echo ($cadsql.'<br>');
        if ($grabar) {
            $ide = $this->Reportes_Model->updatesql($cadsql);
        }


        $campos_retorno = array(
            "ide_canc" => $ide_canc,
            'coutas_can' => $cuotas_can,
            'valor_can' => $valor_can);
        return $campos_retorno;
    }

    private function sacarListaCuotas($lista, $listaPagados, $num_cuotas) {
        $listaaux = array();
        $i = 1;
        $aux = array();
        $valor = 0;
        if (count($lista) > 0) {
            foreach ($lista as $item) {
                $aux["ide_plan"] = $item["ide_plan"];
                $aux["nro_cuotas_plan"] = $item["nro_cuotas_plan"];
                $aux["nro_coutas_canc"] = $item["nro_coutas_canc"];
                $aux["valor_financiar"] = $item["valor_financiar"];
                $aux["valor_financiar"] = $item["valor_financiar"];

                //if (count($listaPagados) > 0) {
                foreach ($listaPagados as $file) {

                    $pos = "couta" . $i . "_plan";
                    //$pos1 = "canc_cuota" . $i;
                    $aux["nro_cuota" . $i] = $i;

                    $item[$pos] = $item[$pos] + $valor;
                    $restante = $item[$pos] - $file["valor"];
                    $aux[$pos] = $item[$pos]; //$file["valor_cuota" . $i];
                    $valor = $restante;
                    $ini = $i;
                    $aux["pagada" . $ini] = true;

                    $i++;
                }
                for ($j = $i; $j <= $num_cuotas; $j++) {
                    if ($j <= 5) {
                        $pos = "couta" . $j . "_plan";
                    } else {
                        $pos = "cuota" . $j . "_plan";
                    }

                    $aux["nro_cuota" . $j] = $j;
                    $ini = $j;
                    $aux["pagada" . $ini] = false;
                    $aux[$pos] = $item[$pos] + $valor;
                    $valor = 0;
                }

                // $i++;
                $listaaux[] = $aux;
                //$i++;
            }
        }
        return $listaaux;
    }

}
